# cif_descriptor

**cif Descriptor - bot** - это специализированный бот, предназначенный для обработки и анализа файлов CIF (Crystallographic Information File) в Telegram. Этот бот облегчает рендеринг и анализ файлов CIF, предоставляя пользователям подробную информацию о кристаллических структурах.

- **Рендеринг файлов CIF**: Пользователи могут отправлять CIF-файлы боту, который затем обрабатывает их для визуального отображения кристаллических структур. Это позволяет пользователям получить четкое и интуитивное представление о расположении атомов и структуре кристаллической решетки в кристаллах.

- **Интерактивные отчеты**: Бот генерирует отчет, содержащий проанализированные данные, и представляет его пользователю в интерактивном формате. Отчет может включать визуальные представления кристаллической структуры, а также текстовые описания и соответствующие метаданные.

- **Бот служит ценным инструментом для студентов**, исследователей и профессионалов в таких областях, как материаловедение, химия и кристаллография. Он упрощает процесс визуализации и понимания сложных кристаллических структур, что делает его полезным образовательным и исследовательским ресурсом.

 - **Интеграция с Telegram**: Бот Telegram легко интегрируется с платформой обмена сообщениями Telegram, позволяя пользователям удобно загружать и анализировать файлы CIF прямо в чате.



Как работает в телеграмме- [ссылка](https://github.com/fofan89/progr_eng_v2/assets/71543763/30675221-4ed4-4431-b0be-9dc0ae440dbe)


## **User input**

+ **/start** - greeting from bot.
+ **/info X** - get Wikipedia info about X.
+ **/video** - send rendered video of crystal structure based on cif file.
+ **cif file** - send description of crystal structure, send rendered image of crystal, send desctiption of crystal structure generatetd by GPT.

## **Security files**
+ **bron.txt** - telegram TOKEN
+ **get_token_info.txt** - ID and Autarization for Gigachat get Token operation
+ **gig.txt** - Gigachat TOKEN

## **Quick start**
1. Get telegram bot TOKEN and write it into **bron.txt**
2. Get Gigachat ID and Autarization and write it into **get_token_info.txt**
3. Run **get_token.py** to generate Gigachat TOKEN
4. Run **bpy_video_watchdog.py** to generate video render independently on telegram bot
5. Run **telegr_bot_v2.py**

## **If you want change render scene**
Open **scenus.blend** in Blender and change scene template.

## **Requirements**
+ python==3.10.9
+ ase==3.22.1
+ bpy==4.0.0
+ python-telegram-bot==20.8
+ Requests==2.31.0
+ wikipedia==1.4.0

### For Blender
To import XYZ file with atoms into scene necessary **Atomic Blender (PDB/XYZ)** addon - https://docs.blender.org/manual/en/4.0/addons/import_export/mesh_atomic.html?utm_source=blender-4.0.2

